package com.justnow.bitoperate;

/**
 * @author justnow
 * Created on 2020-09-22
 * Description
 */
public class Leetcode231 {
    /**
     * 方法一，直接除，然后判断其中的内容
     * @param n
     * @return
     */
    public static boolean isPowerOfTwo(int n) {
        if (n == 0) return false;
        while (n % 2 == 0) {
            n = n / 2;
        }
        return n == 1;
    }

    /**
     * 方法二，2的幂的特性
     * n & (n - 1) == 0
     *
     * 所以可以直接判断了
     * @param n
     * @return
     */
    public static boolean isPowerOfTwo02(int n) {
        if (n == 0) return false;
        return (n & (n - 1)) == 0;
    }

    public static void main(String[] args) {
        System.out.println(isPowerOfTwo02(16));
        System.out.println(isPowerOfTwo02(11));
        System.out.println(isPowerOfTwo02(10));
    }
}
